#!/bin/bash
if [[ $# -ne 2 ]]; then
    echo "The format is as follows:"
    echo "bash build.sh buildpath installpath"
    echo ":param buildpath: 应用构建绝对路径"
    echo ":param installpath: 应用安装绝对路径"
    exit 1
fi

[[ ! "$1" =~ ^/.* || "$1" = "/" ]] &&  echo "请输入正确的构建路径" && exit 1
[[ ! "$2" =~ ^/.* || "$2" = "/" ]] &&  echo "请输入正确的安装路径" && exit 1

create_dir()
{
    local path=$1
    [[ "$path" =~ .*/$ ]] && path=${path%/*}
    if [[ ! -d "$path" && ! -f "$path" ]]; then mkdir -p "$path"; else path=$path$(date "+%y%m%d%H%M%S") && mkdir -p "$path"; fi
    echo "$path"
}

buildpath=$(create_dir "$1")
installpath=$(create_dir "$2")

yum install -y m4 environment-modules systemd-devel
source /etc/profile
module purge

set -e
yum install -y cmake zlib zlib-devel xz xz-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel openssl-devel patch
dep_dir="dependency"
bash $dep_dir/bisheng-compiler-2.1.0.sh "$buildpath" "$installpath"
module use "$installpath"/bisheng-compiler-2.1.0
module load "$installpath"/bisheng-compiler-2.1.0/bisheng_modulefiles

bash $dep_dir/bwa-0.7.17.sh "$buildpath" "$installpath"
module use "$installpath"/bwa-0.7.17
module load "$installpath"/bwa-0.7.17/bwa_modulefiles

bash $dep_dir/samtools-1.15.1.sh "$buildpath" "$installpath"
module use "$installpath"/samtools-1.15.1
module load "$installpath"/samtools-1.15.1/samtools_modulefiles

bash wham-1.8.0.sh "$buildpath" "$installpath"

mkdir -p pkg/wham-1.8.0-hpc && cp -r "$installpath"/* pkg/wham-1.8.0-hpc/
cat>"pkg/wham-1.8.0-hpc/run.sh"<<EOF
#!/bin/bash
sudo yum install -y m4 environment-modules systemd-devel csh time patch libatomic perl-Data-Dumper \\
autoconf automake libtool numactl binutils valgrind flex wget tar libatomic gcc-c++ git \\
cmake zlib zlib-devel xz xz-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel openssl-devel numpy python2-scipy
source /etc/profile &> /dev/null 
current_dir="\$(cd "\$(dirname "\${BASH_SOURCE[0]}")" && pwd -P)"
for f in "\${current_dir}"/*; do
  if [[ -d "\${f}" && -f "\$(ls "\${f}"/*modulefiles 2>&1)" ]]; then
    module use "\${f}" && module load "\${f}"/*modulefiles
  fi
done
echo -e "\033[1;32;1mwham environment initialization completed.\033[0m"

EOF
cd pkg/ && tar zcvf wham-1.8.0-hpc.tar.gz wham-1.8.0-hpc

rm -rf "$buildpath" "$installpath"
